

#import <Foundation/Foundation.h>

extern NSString * const TALKFUN_EVENT_RTC_ROOM_INIT;//讲师初始化完成
extern NSString * const TALKFUN_EVENT_RTC_APPLY;//有人申请

extern NSString * const TALKFUN_EVENT_RTC_CANCEL;//有人取消申请申请


extern NSString * const TALKFUN_EVENT_RTC_START;//直播开始
extern NSString * const TALKFUN_EVENT_RTC_STOP;//直播结束


//---------------------------

extern NSString * const TALKFUN_EVENT_RTC_OPEN;             //开启讲台模式
extern NSString * const TALKFUN_EVENT_RTC_CLOSE;            //关闭讲台模式

extern NSString * const TALKFUN_EVENT_RTC_USER_UP;           //允许上讲台
extern NSString * const TALKFUN_EVENT_RTC_REJECTAPPLY;         //拒绝用户上讲台
extern NSString * const TALKFUN_EVENT_RTC_KICK;                //踢下讲台
extern NSString * const TALKFUN_EVENT_RTC_DOWN;                //有人主动下讲台

extern NSString * const TALKFUN_EVENT_RTC_OPEN_VIDEO;          //打开摄像头
extern NSString * const TALKFUN_EVENT_RTC_CLOSE_VIDEO;         //关闭摄像头

extern NSString * const TALKFUN_EVENT_RTC_OPEN_AUDIO;            //打开麦克风
extern NSString * const TALKFUN_EVENT_RTC_CLOSE_AUDIO;            //关闭麦克风

extern NSString * const TALKFUN_EVENT_RTC_DRAW_ENABLE;           //打开画线权限
extern NSString * const TALKFUN_EVENT_RTC_DRAW_DISABLE;          //关闭画线权限

extern NSString * const TALKFUN_EVENT_RTC_AWARD ;                //奖励
extern NSString * const TALKFUN_EVENT_LIVE_DURATION ;         //直播时长
extern NSString * const TALKFUN_EVENT_LIVE_COUNTDOWN ;         //直播结束倒计时


extern NSString * const TALKFUN_EVENT_RTC_OFFLINE ;                //用户掉线


extern NSString * const TALKFUN_EVENT_RTC_VOICE_VALUE ;      //报告扬声器的音频音量指示
extern NSString * const TALKFUN_EVENT_RTC_CONNECTIONINTERRUPTED ;          //频道连接断开
extern NSString * const TALKFUN_EVENT_RTC_RE_CNNECT ;
/**
 * 1.4 画面填充模式
 */
typedef NS_ENUM(NSInteger, Talkfun_Type_RenderMode) {
    Talkfun_Type_RenderModeAspectFit = 0,// 图像适应屏幕，保持画面完整，但如果图像宽高比不同于屏幕宽高比，会有黑边的存在。
    Talkfun_Type_RenderMode_Fill = 1,// 图像铺满屏幕，不留黑边，如果图像宽高比不同于屏幕宽高比，部分画面内容会被裁剪掉
    
};

typedef enum {
   
    TalkfunRespondinviteStatusReject = 0, //拒绝连麦
    TalkfunRespondinviteStatusAccept  = 1, //接受连麦
    
}TalkfunRespondinviteStatus;

//重新加入频道成功
typedef NS_ENUM(NSInteger,TalkfunApplyStatus) {
    // 未申请 NoApply
    TalkfunApplyStatusNoApply = 0,
    // 正在申请上讲台
    TalkfunApplyStatusApplying    = 1,
    // 讲台上
    TalkfunApplyStatusAllow = 2,
    //邀请中
    TalkfunApplyStatusAllowInvite = 3
};

typedef NS_ENUM(NSInteger,TalkfunMediaPower) {
    /**老师操作关闭设备*/
    TalkfunMediaPowerCloseForZHUBO     = 0,
    /**老师操作打开设备*/
    TalkfunMediaPowerOpenForZHUBO      = 1,
    /**学员操作关闭设备*/
    TalkfunMediaPowerCloseForUser     = 10,
    /**学员操作打开设备*/
    TalkfunMediaPowerOpenForUser      = 11,
    
};
typedef NS_ENUM(NSInteger,TalkfunRtcRole) {
    /**超级管理员(老师)*/
    TalkfunRtcRoleSpadmin     = 0,
    /**管理员(助教)*/
    TalkfunRtcRoleAdmin       = 1,
    /**普通用户(学生)*/
    TalkfunRtcRoleeUser       = 2,
    /**游客*/
    TalkfunRtcRoleeGuest      = 3
};


typedef NS_ENUM(NSInteger,TalkfunLiveModel) {
    /**大班*/
    TalkfunLiveModelNormal     = 3,
    /**小班*/
    TalkfunLiveModelLiveRtc    = 5,
    /**混合*/
    TalkfunLiveModelLiveMix    = 6
    
};
typedef NS_ENUM(NSInteger,TalkfunRTCStatus) {
    /**关闭讲台*/
    TalkfunRTCStatusClose = 0,
    /**开启讲台*/
    TalkfunRTCStatusOpen  = 1
    
};

typedef NS_ENUM(NSInteger, TalkfunRTCLiveState)
{     /**结束状态*/
     TalkfunRTCLiveStateStop,
     /**开始状态*/
     TalkfunLiveRTCStateStart,

};

typedef NS_ENUM(NSInteger, TalkfunVideoOutputOrientationMode) {

    TalkfunVideoOutputOrientationModeAdaptative = 0,
    TalkfunVideoOutputOrientationModeFixedLandscape = 1,
    TalkfunVideoOutputOrientationModeFixedPortrait = 2,
};
typedef NS_ENUM(NSInteger,TalkfunGlobalStatus) {
    /**全体音频打开*/
    TalkfunAudioOpen      = 0,
    /**全体音频关闭*/
    TalkfunAudioClose     = 1 ,
    
    /**全体视频打开*/
    TalkfunVideoOpen      = 2  ,
    /**全体视频关闭*/
    TalkfunVideoClose      = 3 ,
    
    /**全体音视频打开*/
    TalkfunVideoAudioOpen  = 4 ,
    /**全体音视频关闭*/ 
    TalkfunVideoVideoAudioClose  = 5
    
};
@interface TalkfunSDKRtcConfig : NSObject
@end

#import <UIKit/UIKit.h>
@interface TalkfunRtcModel : NSObject
//角色
@property(nonatomic,assign)TalkfunRtcRole role;
/**用户id*/
@property(nonatomic,strong)NSString *xid;
/**奖励的总分数*/
@property(nonatomic,assign)NSInteger score;
/**时间戳 例:1618036620*/
@property(nonatomic,strong)NSString *time;
/**名字*/
@property(nonatomic,strong)NSString *nickname;
/**涂鸦权限*/
@property(nonatomic,assign)BOOL drawPower;
/**是不是自己*/
@property(nonatomic,assign)BOOL isMe;
/**用户的视频开关权限*/
@property(nonatomic,assign)TalkfunMediaPower video;
/**用户的音频开关权限*/
@property(nonatomic,assign)TalkfunMediaPower audio;
/**用户视频预览容器*/
@property(nonatomic,strong)UIView * _Nonnull view;
/**UID*/
@property(nonatomic,strong)NSString *_Nonnull uid;
/**头像*/
@property(nonatomic,strong)NSString * _Nonnull avatar;
/*
  * 说话者的音量, 取值范围0 - 100
*/
@property(nonatomic,assign)NSInteger voiceValue;

/**显示断网动画  默认:NO*/
@property(nonatomic,assign)BOOL isLoading;

/**是否全屏  默认:NO*/
@property(nonatomic,assign)BOOL isFull; 
@end

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/**
*    错误提示
*/
@interface TFError : NSObject
///【字段含义】内容
@property (nonatomic, copy, nonnull) NSString* msg;
///【字段含义】 状态码
@property (nonatomic, assign)NSInteger code;
@end



/**
*     进入房间参数的模型
*/
@interface TFRtcEngineKitInitParams : NSObject

/**课程id
 */
@property (nonatomic, copy, nonnull)NSString*courseID;

@end


@interface TFBroadCastParams : NSObject
/**内容*/
@property(nonatomic,strong) NSString * _Nonnull msg;

@property(nonatomic,strong)NSNumber *_Nonnull __auto;

@end

/**
 点名发起者
 */
@interface TFRtcEngineKitSignInfo : NSObject
/**点名状态*/
@property(nonatomic,strong)NSString * _Nonnull status;

/**昵称*/
@property(nonatomic,strong)NSString * _Nonnull  nickname;
/**点名时间*/
@property(nonatomic,strong)NSString * _Nonnull  signTotal;

/**时长*/
@property(nonatomic,strong)NSString * _Nonnull  duration;

/**开始时间*/
@property(nonatomic,strong)NSString * _Nonnull  addTime;

@property(nonatomic,strong)NSString * _Nonnull  total;
@property(nonatomic,strong)NSString * _Nonnull  xid;

@property(nonatomic,strong)NSString * _Nonnull  a;

@end

/**签到人数列表*/
@interface TFRtcEngineKitSign : NSObject
/**头像*/
@property(nonatomic,strong) NSString * _Nonnull avatar;
/**是否签到*/
@property(nonatomic,strong) NSString * _Nonnull isSign;
/**uid*/
@property(nonatomic,strong) NSString * _Nonnull uid;
/**昵称*/
@property(nonatomic,strong) NSString * _Nonnull nickname;

@property(nonatomic,strong) NSString * _Nonnull a;
/**xid*/
@property(nonatomic,strong) NSString * _Nonnull xid;

@end


@interface TFRtcEngineKitSignNews : NSObject

/**点名发起者*/
@property(nonatomic,strong) TFRtcEngineKitSignInfo * _Nonnull signInfo;

/**点名签到者列表*/
@property(nonatomic,strong) NSMutableArray < TFRtcEngineKitSign *> *_Nonnull signList;
@end


/**抽奖记录模型*/
@interface TFRtcEngineKitLottery : NSObject

/**发起者昵称*/
@property(nonatomic,strong) NSString * _Nonnull launch_nickname;
/**xid*/
@property(nonatomic,strong) NSString * _Nonnull xid;
/**uid*/
@property(nonatomic,strong) NSString * _Nonnull uid;
/**roomid*/
@property(nonatomic,strong) NSString * _Nonnull roomid;

/**liveid*/
@property(nonatomic,strong) NSString * _Nonnull liveid;

/**launch_xid*/
@property(nonatomic,strong) NSString * _Nonnull launch_xid;


/**时间*/
@property(nonatomic,strong) NSString * _Nonnull time;

/**抽奖id*/
@property(nonatomic,strong) NSString * _Nonnull lotery_id;

/**昵称*/
@property(nonatomic,strong) NSString * _Nonnull nickname;

/**课程id*/
@property(nonatomic,strong) NSString * _Nonnull course_id;

/**中奖者*/
@property(nonatomic,strong) NSString * _Nonnull winners;


@property(nonatomic,strong) NSArray * _Nonnull xids;

@property(nonatomic,strong) NSArray * _Nonnull uids;

@end


/**投票列表模型*/
@interface TFRtcEngineKitVote : NSObject
/**状态*/
@property(nonatomic,copy)NSString * _Nonnull status; //
/**选项1*/
@property(nonatomic,copy)NSString * _Nonnull op1; //选项1-10
/**选项2*/
@property(nonatomic,copy)NSString * _Nonnull op2;
/**选项3*/
@property(nonatomic,copy)NSString * _Nonnull op3;
/**选项4*/
@property(nonatomic,copy)NSString * _Nonnull op4;
/**选项5*/
@property(nonatomic,copy)NSString * _Nonnull op5;
/**选项6*/
@property(nonatomic,copy)NSString * _Nonnull op6;
/**选项7*/
@property(nonatomic,copy)NSString * _Nonnull op7;
/**选项8*/
@property(nonatomic,copy)NSString * _Nonnull op8;
/**选项9*/
@property(nonatomic,copy)NSString * _Nonnull op9;
/**选项10*/
@property(nonatomic,copy)NSString * _Nonnull op10;
/**直播id*/
@property(nonatomic,copy)NSString * _Nonnull liveId;
/**投票title*/
@property(nonatomic,copy)NSString * _Nonnull title;
@property(nonatomic,copy)NSString * _Nonnull course_id;
@property(nonatomic,copy)NSString * _Nonnull nickname;
@property(nonatomic,copy)NSString * _Nonnull xid;
@property(nonatomic,copy)NSString * _Nonnull owner;
/**结束时间*/
@property(nonatomic,copy)NSString * _Nonnull endTime; //
/**类型*/
@property(nonatomic,copy)NSString * _Nonnull type; //类型
@property(nonatomic,copy)NSString * _Nonnull optional;
/**投票类型*/
@property(nonatomic,copy)NSString * _Nonnull voteType; //
@property(nonatomic,copy)NSString * _Nonnull uid;
@property(nonatomic,copy)NSString * _Nonnull label;
@property(nonatomic,copy)NSString * _Nonnull addTime;
@property(nonatomic,copy)NSString * _Nonnull pid;
/**开始时间*/
@property(nonatomic,copy)NSString * _Nonnull startTime; //
@property(nonatomic,copy)NSString * _Nonnull rid;
@property(nonatomic,copy)NSString * _Nonnull bid;
/**投票id*/
@property(nonatomic,copy)NSString * _Nonnull vid; //

@end

/**投票用户数据模型*/
@interface TFRtcEngineKitVoteUser : NSObject
@property(nonatomic,strong)NSString * _Nonnull uid;
/**投票用户的时间*/
@property(nonatomic,strong)NSString * _Nonnull time;
@property(nonatomic,strong)NSString * _Nonnull userId;
@property(nonatomic,strong)NSString * _Nonnull vid;
/**投票用户的昵称*/
@property(nonatomic,strong)NSString * _Nonnull nickname;
@property(nonatomic,strong)NSString * _Nonnull msg;
@property(nonatomic,strong)NSArray * _Nonnull option;

@end

/**投票选项模型*/
@interface TFRtcEngineKitVotestats : NSObject
/**投票选项*/
@property(nonatomic,strong)NSString * _Nonnull op;
/**投票选项人数*/
@property(nonatomic,strong)NSString * _Nonnull opNum;
/**投票选项百分比*/
@property(nonatomic,strong)NSString * _Nonnull percent;

@end

/**投票选项详细信息*/
@interface TFRtcEngineKitVoteInfo : NSObject
/**发起投票的标签*/
@property(nonatomic,strong)NSString * _Nonnull label;
/**发起投票的uid*/
@property(nonatomic,strong)NSString * _Nonnull uid;
/**投票用户的bid*/
@property(nonatomic,strong)NSString * _Nonnull bid;
/**发起投票的选项*/
@property(nonatomic,strong)NSString * _Nonnull optional;
/**发起投票的owner*/
@property(nonatomic,assign)NSInteger owner;
/**发起投票noticeTime*/
@property(nonatomic,strong)NSString * _Nonnull noticeTime;

/**发起投票答案*/
@property(nonatomic,strong)NSString * _Nonnull answer;
/**发起投票vid*/
@property(nonatomic,strong)NSString * _Nonnull vid;
/**发起投票图片链接*/
@property(nonatomic,strong)NSString * _Nonnull imageUrl;
/**发起投票名称*/
@property(nonatomic,strong)NSString * _Nonnull title;

/**发起投票的结束时间*/
@property(nonatomic,strong)NSString * _Nonnull endTime;
/**发起投票的昵称*/
@property(nonatomic,strong)NSString * _Nonnull nickname;
/**发起投票的开始时间*/
@property(nonatomic,strong)NSString * _Nonnull startTime;
/**发起投票的状态*/
@property(nonatomic,strong)NSString * _Nonnull status;
@end

/**投票编辑详细信息*/
@interface TFRtcEngineKitVoteEmit : NSObject

/**投票用户信息*/
@property(nonatomic,strong)NSMutableArray <TFRtcEngineKitVoteUser *> * _Nonnull user;

/**是否可见*/
@property(nonatomic,assign)BOOL isShow;


/**total*/
@property(nonatomic,assign)NSInteger total;

/**投票选项列表信息*/
@property(nonatomic,strong)NSMutableArray <TFRtcEngineKitVotestats *> * _Nonnull statsList;

/**投票信息*/
@property(nonatomic,strong)TFRtcEngineKitVoteInfo* _Nonnull info;


@property(nonatomic,strong)NSMutableArray * _Nonnull rightUser;

@end


/**点名列表*/
@interface TFRtcEngineKitRollList : NSObject

@property(nonatomic,copy)NSString * _Nonnull status;

@property(nonatomic,copy)NSString * _Nonnull IDs;

@property(nonatomic,copy)NSString * _Nonnull nickname;

@property(nonatomic,copy)NSString * _Nonnull signTotal;

@property(nonatomic,copy)NSString * _Nonnull restTime;

@property(nonatomic,copy)NSString * _Nonnull duration;
@property(nonatomic,copy)NSString * _Nonnull customId;
@property(nonatomic,copy)NSString * _Nonnull addTime;

@property(nonatomic,copy)NSString * _Nonnull total;
@end
